namespace NGIS.Model
{
	public interface IModelAttribute
	{
		int getLocalAttributeCount();

		bool getLocalAttribute(int idx, ref LocalAttribute pLocalAttribute);

		bool getLocalAttribute(ELocalizationType pLocalType, ref LocalAttribute pLocalAttribute);

		bool addLocalAttributeInfo(ref LocalAttribute pLocalAttribute);

		bool removeLocalAttribute(int idx);

		bool removeLocalAttribute(ref LocalAttribute pLocalAttribute);

		bool updateLocalAttribute(int idx, ref LocalAttribute pLocalAttribute);

		bool updateLocalAttribute(ELocalizationType pLocalType, ref LocalAttribute pLocalAttribute);

		int getCategoryCount();

		bool getCategory(int idx, ref ModelCategory pModelCategory);

		bool addCategoryInfo(ref ModelCategory pCategoryInfo);

		bool removeCategory(int idx);

		bool removeCategory(ref ModelCategory pCategoryInfo);

		bool updateCategory(int idx, ref ModelCategory pCategoryInfo);

		int getAuthorsCount();

		bool getAuthor(int index, ref ModelUser author);

		bool addAuthor(ref ModelUser author);

		bool removeAuthor(int index);

		int getBuildersCount();

		bool getBuilder(int index, ref ModelUser builder);

		bool addBuilder(ref ModelUser builder);

		bool removeBuilder(int index);

		int getWrappersCount();

		bool getWrapper(int index, ref ModelUser wrapper);

		bool addWrapper(ref ModelUser wrapper);

		bool removeWrapper(int index);

		bool compareOther(IModelAttribute pAttribute, ref string obj, ref string name);
	}
}
